本文介绍DTN仿真器相关软件安装,即The ONE+Eclipse+ModelGoon。The ONE是DTN仿真器,Eclipse便于调试,ModelGoon用于生成一些UML图,便于理解。
1. 安装The ONE仿真器
1.1 安装jdk
The ONE是用Java写的,Ubuntu默认没装jdk,装很简单,如下:
$ sudo apt-get install openjdk-7-jdk
设置环境变量(尽管不配置也能编译通过,但后续安装会提示找不到JAVA_HOME
),将以下一行加到~/.profile
文件中,需要注销才能生效(详情参考附录:环境变量设置)。
export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/"
1.2 安装The ONE
在官网下载The ONE安装包,解压,进入The ONE目录编译,命令如下:
qiankun@laptop:~/NetworkSimulator/one_1.5.1-RC2$ ./compile.bat
1.3 运行The ONE
运行The ONE有两种方式:
- 图形界面,直观观察效果
- 命令,可以批量运行
通过命令行运行The ONE,示例如下(-b
表示batch,批量运行):
$ ./one.sh default_settings.txt
$ ./one.sh -b 10 default_settings.txt
2. 安装Eclipse
从官网下载Eclipse IDE for Java Developers,解压安装。为Eclipse创建一个桌面图标,/usr/share/applications/
下创建文件eclipse.desktop
,再将其拖到Ubuntu启动器(侧边栏)。eclipse.desktop
文件内容如下:
[Desktop Entry]
Name=Eclipse
Type=Application
Exec=/home/qiankun/NetworkSimulator/eclipse/eclipse
Terminal=false
Icon=/home/qiankun/NetworkSimulator/eclipse/icon.xpm
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE;Java
Name[en]=eclipse.desktop
值得注意的是,这里的/home/qiankun
不能用~
代替。为了让The ONE能运行,还需要安装Junit,点里这里下载,将junit.jar
加到Eclipse的Java Build Path中的Libraries。 详细安装参考这里。
装完Eclipse,新建Java项目,选择The ONE文件夹,并将one_1.5.1-RC2/lib/
下两个jar也加进去。详情可参考文章《Report of A DTN Simulator – THE ONE》。
3. 安装ModelGoon
ModelGoon(UML for Java)可以生成Java的一些UML图,目前只支持3种,即类关系图(class diagram)、包依赖图(package dependencies diagram)、交互图(interaction diagram)。在Eclipse菜单栏打开help –> Install new software –> Eclipse Marketplace…,在搜索框搜索modelgoon,点击install即可。详细安装见这里。
创建UML图,在左边包浏览器,选中项目右击 ——> New ——> Others…,从类关系图(class diagram)、包依赖图(package dependencies diagram)、交互图(interaction diagram)选择一种,创建新文件。从包浏览器(package explorer)将类或者包拖到新建的文件中,关系会自动建立。详细操作可以参考这里。The ONE部分包依赖关系如下:
附:环境变量设置
博文《Ubuntu环境变量》写得非常详细,以下根据自己的理解,做一些摘抄。
(1) 所有用户 /etc/profile
为系统的每个用户设置环境信息,用户第一次登录,该文件被执行。可见,修改了该文件,得重启才能生效。
/etc/environment
系统在读取用户的profile前,设置环境文件的环境变量。
/etc/bashrc
为每一个运行bash shell的用户执行此文件,打开bash shell,该文件被读取。
(2) 用户独有 ~/.bash_profile
用户专属的shell信息,执行用户的.bashrc
文件,设置一些环境变量。值得注意的是,该文件只执行一次(用户登录时)。所以,修改该文件,至少要注销才有效。
~/.bashrc
用户专属的bash shell的bash信息,该文件在登录和每次打开新的shell时被读取。让修改的文件生效,有两种方法:其一,重启shell;其二,执行命令source ~/.bashrc
。
临时变量
在shell窗口,用export导入变量,举例如下。值得注意的是,变量生存期只在当前的shell窗口。
export JAVA_HOME=/usr/lib/jvm/java-1.7-openjdk-amd64